package com.ruoyi.retail.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.retail.domain.SellGood;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.retail.mapper.SellMapper;
import com.ruoyi.retail.domain.Sell;
import com.ruoyi.retail.service.ISellService;

/**
 * 零售管理Service业务层处理
 *
 * @author ruoyi
 * @date 2025-04-01
 */
@Service
public class SellServiceImpl implements ISellService
{
    @Autowired
    private SellMapper sellMapper;

    /**
     * 查询零售管理
     *
     * @param id 零售管理主键
     * @return 零售管理
     */
    @Override
    public Sell selectSellById(Integer id)
    {
        return sellMapper.selectSellById(id);
    }

    /**
     * 查询零售管理列表
     *
     * @param sell 零售管理
     * @return 零售管理
     */
    @Override
    public List<Sell> selectSellList(Sell sell)
    {
        return sellMapper.selectSellList(sell);
    }

    /**
     * 新增零售管理
     *
     * @param sell 零售管理
     * @return 结果
     */
    @Override
    public int insertSell(Sell sell)
    {
        String datePart = DateUtils.dateTimeNow("yyyyMMdd");
        String maxSn = sellMapper.selectMaxSnByDate(datePart); // 需要添加这个方法
        int sequence = 1;
        if (maxSn != null) {
            sequence = Integer.parseInt(maxSn.substring(maxSn.length() - 4)) + 1;
        }
        String sn = "S" + datePart + String.format("%04d", sequence);

        sell.setSn(sn);
        sell.setStatus("待提交");  // 设置默认状态为"待提交"
        sell.setPaymentStatus("未支付");  // 设置默认支付状态为"未支付"
        sell.setCreateTime(DateUtils.getNowDate());
        return sellMapper.insertSell(sell);
    }

    /**
     * 修改零售管理
     *
     * @param sell 零售管理
     * @return 结果
     */
    @Override
    public int updateSell(Sell sell)
    {
        sell.setUpdateTime(DateUtils.getNowDate());
        return sellMapper.updateSell(sell);
    }

    /**
     * 批量删除零售管理
     *
     * @param ids 需要删除的零售管理主键
     * @return 结果
     */
    @Override
    public int deleteSellByIds(Integer[] ids)
    {
        return sellMapper.deleteSellByIds(ids);
    }

    /**
     * 删除零售管理信息
     *
     * @param id 零售管理主键
     * @return 结果
     */
    @Override
    public int deleteSellById(Integer id)
    {
        return sellMapper.deleteSellById(id);
    }

    @Override
    public List<SellGood> selectProductList(SellGood product) {
        return sellMapper.selectProductList(product);
    }
    @Override
    public int updateSellStatus(Sell sell) {
        sell.setUpdateTime(DateUtils.getNowDate());
        return sellMapper.updateSellStatus(sell);
    }

    @Override
    public int updateSellPaymentStatus(Sell sell) {
        sell.setUpdateTime(DateUtils.getNowDate());
        return sellMapper.updateSellPaymentStatus(sell);
    }
}
